001 /**
002 * Created by IntelliJ IDEA.
003 * User: Wei Wang
004 * Date: Jan 9, 2003
005 * Time: 4:22:21 PM
006 */
007 package EVolve.util.equators;
008
009 public abstract class Set implements Cloneable{
010 protected long [] data;
011 protected int size;
012 protected int emptySlot;
013 protected int entityNumber;
014
015 public int size() {
016 return size;
017 }
018
019 public long getElement(int i) {
020 return data[i];
021 }
022
023 public boolean setFull() {
024 return emptySlot >= size;
025 }
026
027 public long getEntityId(int i) {
028 return data[i];
029 }
030
031 public abstract void addElement(long element);
032
033 public abstract Set intersection(Set set);
034
035 public abstract Set union(Set set);
036
037 public abstract boolean exist(long element);
038
039 public abstract long getHashValue();
040
041 public abstract Set newSet();
042
043 public abstract boolean equals(Set set, float percent);
044
045 public Object clone() {
046 Set o = null;
047 try {
048 o = (Set)super.clone();
049 } catch (CloneNotSupportedException e) {
050 e.printStackTrace();
051 return null;
052 }
053
054 o.data = new long[data.length];
055 for (int i=0; i<data.length; i++)
056 o.data[i] = data[i];
057 return o;
058 }
059 }